Raid

Die Übersichtlichkeit der Seite wird durch Javascript erhöht. Ist dies aktiviert, werden die Texte unter den Überschriften durch Anklicken der Überschriften ein- und ausgeblendet.

Einrichtung

Für mich ist ein Raid Level 1 interessant. Dabei werden 2 Festplatten 1 zu 1 gespiegelt. Hier möchte ich kurz die einzelnen Schritte zur Einrichtung eines Softwareraids auflisten:

partitionieren
sudo parted -a optimal -- /dev/sdX mkpart primary 2048s -8192s
Partition als Raidpartion markieren
sudo parted /dev/sdX set 1 raid on
Raid1 anlegen
sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/sde1 /dev/sdf1
Dateisystem anlegen
sudo mkfs -t ext4 /dev/md0
grub Konfiguration bekannt machen
sudo update-initramfs -u -k all
Spiegelung Prozessvortschritt anzeigen
cat /proc/mdstat
Raid-Status anzeigen
mdadm --detail /dev/md0

nach oben

Überwachung

Ich habe mir ein kleines Script geschrieben, das eine Fehlerausgabe veranlasst, sobald Probleme festgestellt werden.

Dieses Script muss dann in der Datei

/etc/mdadm.conf

mit folgender Zeile als letzte Zeile eingefügt werden:

PROGRAM /home/maik/Dokumente/workspace/Scripte/notifyRaidError.sh
#! /bin/bash

# Informiert über ein Fehler im Raidsystem per Popup
# Wichtig:
#**********
# folgende Zeile muss in der Datei
# /etc/mdadm.conf
# hinzugefügt werden:
# PROGRAM /Pfad/zu/diesem/Script/notifyRaidError.sh
# demnach derzeit:
# PROGRAM /home/maik/Dokumente/workspace/Scripte/notifyRaidError.sh
# Funktionstest mit:
# 	mdadm --monitor --scan --oneshot --test

#notify-send -u critical -i /usr/share/icons/HighContrast/48x48/status/dialog-warning.png ' Raid-Fehler' "sieh Dir tail /proc/mdstat an!"
notify-send -u critical -i /usr/share/icons/gnome/48x48/status/error.png ' Raid-Fehler' "sieh Dir tail /proc/mdstat an!"

Test

Ob es funktioniert kann durch folgenden Befehl überprüft werden, wodurch das Fehler-Popup für jede am Raid beteiligte Partion erzeugt wird.

mdadm --monitor --scan --oneshot --test

nach oben

Mein aktuelles Raid 1

/dev/md0

/dev/md0 on /mnt/sicher type ext4 (rw,noatime,data=ordered)

fdisk

  • Festplatte /dev/md0: 488,2 GiB, 524153782272 Bytes, 1023737856 Sektoren
  • Einheiten: Sektoren von 1 * 512 = 512 Bytes
  • Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
  • E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes

nach oben

tail /proc/mdstat

  • md0 : active raid1 sdb2[1] sda7[0]
    • 511868928 blocks super 1.2 [2/2] [UU]
    • bitmap: 0/4 pages [0KB], 65536KB chunk

nach oben

sda7

Gerät Anfang Ende Sektoren Größe Typ
/dev/sda7 409602048 1433602047 1024000000 488,3G Linux RAID

nach oben

sdb2

Gerät Anfang Ende Sektoren Größe Typ
/dev/sdb2 409602048 1433602047 1024000000 488,3G Linux RAID

nach oben

/dev/md1

/dev/md1 on /mnt/daten type ext4 (rw,noatime,data=ordered)

fdisk

  • Festplatte /dev/md1: 3 TiB, 3266646638592 Bytes, 6380169216 Sektoren
  • Einheiten: Sektoren von 1 * 512 = 512 Bytes
  • Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
  • E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes

nach oben

tail /proc/mdstat

  • md1 : active raid1 sdb3[1] sda8[0]
    • 3190084608 blocks super 1.2 [2/2] [UU]
    • bitmap: 0/24 pages [0KB], 65536KB chunk

nach oben

sda8

Gerät Anfang Ende Sektoren Größe Typ
/dev/sda8 1433602048 7814033407 6380431360 3T Linux RAID

nach oben

sdb3

Gerät Anfang Ende Sektoren Größe Typ
/dev/sdb3 1433602048 7814033407 6380431360 3T Linux RAID

nach oben

Reparatur

Platte aus dem Verbund nehmen

Falls auf einer Festplatte mehrere Partionen sind, die von verschiedenen Raids genutzt werden, kann es vorkommen, dass eine verwendete Festplatte nur teilweise defekt ist und sich z.B. die Partition von md0 im Status [u_] befindet, während alle anderen im Status [UU] sind. In diesem Fall müssen alle Raids auf den Status [U_] gebracht werden:

mdadm /dev/mdX --fail /dev/sdXN

Falls die defekte Platte noch nicht vom Kernel aus dem Verbund entfernt wurde, muss dies händisch erfolgen:

sudo mdadm /dev/mdX --remove /dev/sdXN 

nach oben

Austausch

Zunächst wird die defekte Festplatte durch eine gleichartige ausgetauscht.

Welche Platte betroffen ist kann mehr sehr gut erkennen mit:

sudo mdadm --detail /dev/mdX

Den Festplattentyp kann man mit folgenden Befehl ermitteln:

hdparm -i /dev/sdX | grep -i serial

nach oben

Partitionen erstellen

Patitionstabelle kopieren

Nun wird die Partitionstabelle von der vorhandenen auf die neue Platte kopiert.

Dabei ist entscheidend, welcher Typ von Partitionstabelle genutz wurde. Normalerweise wird bei Partitionen > 2 TB gpt genutzt. Um den Patitionstabellentyp herauszufinden kann man sfdisk nutzen:

sfdisk -l /dev/sda

Wobei sda durch die Quellpartion ersetzt werden muss. Wenn gpt genutzt wird, warnt sfdik direkt davor, das es gpt nicht unterstützt.

Partitionstyp dos
sfdisk -d /dev/sdQuelle | sfdisk --force /dev/sdZiel
Partitionstyp gpt
sgdisk -R /dev/sdZiel /dev/sdQuelle

nach oben

Alternativ eine Partition erstellen

Auch hier muss zunächst die passende Partitionstabelle angelegt werden.(siehe Einrichtung).

Die Partition muss mindestens die gleiche Anzahl Sektoren enthalten wie die bereits genutzten Partitionen. Von einer bestehenden Platte erhält man die Sektorenzahl durch:

sudo parted /dev/sdX u s print

oder

sudo fdisk -l

partitionieren:

SEKTORZIELGROESSE=$(wieZuvorERmittelt)
STARTSEKTOR=2048
ENDSEKTOR=$STARTSEKTOR-1+$SEKTORZIELGROESSE
sudo parted -a optimal -- /dev/sdX mkpart primary $(STARTSEKTOR)s  $(ENDSEKTOR)s

Dabei gilt also für den

STARTSEKTOR
ist eine durch 2048 teilbare Zahl
ENDSEKTOR
STARTSEKTOR + SEKTORZAHL -1 (-1, da die Gesamtsektorzahl inklusive dem Startsektor ist)

nach oben

Die entsprechenden Partitionen zum Raid hinzufügen

Den aktuellen Raid-Status kann man herausfinden über:

cat /proc/mdstat

Nun wird die neue Partition hinzugefügt durch:

sudo mdadm /dev/mdName -a /dev/sdXN

Wobei

mdName
durch die Raid-Bezeichnung (Bsp: md0) ersetzt wird.
X
wird ersetzt durch den Laufwerksbuchstaben (Bsp: sda)
N
wird ersetzt durch die Partionsnummer (Bsp: sda1)

Nun kann der aktuelle Status wieder angezeigt werden durch:

cat /proc/mdstat                                                           

nach oben